package com.zzxz.practicaltrainingsys.mapper;

import com.zzxz.practicaltrainingsys.entity.Teacher;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface TeacherMapper {
    @Select("select * from teacher ")
    List<Teacher> getTeacher();

    @Update("UPDATE teacher SET teacher_password = #{teacher_password} WHERE teacher_id = #{teacher_id}")
    int updatePassword(@Param("teacher_id") Integer teacher_id, @Param("teacher_password") String teacher_password);

    @Update("UPDATE teacher SET " +
            "teacher_name = #{teacher_name}, " +
            "teacher_image = #{teacher_image}, " +
            "teacher_sex = #{teacher_sex}, " +
            "teacher_password = #{teacher_password}, " +
            "teacher_phone = #{teacher_phone}, " +
            "teacher_email = #{teacher_email}, " +
            "teacher_education = #{teacher_education}, " +
            "teacher_idcard = #{teacher_idcard}, " +
            "teacher_worktime = #{teacher_worktime} " +
            "WHERE teacher_id = #{teacher_id}")
    int updateTeacher(Teacher teacher);

    @Select("SELECT teacher_password FROM teacher WHERE teacher_id = #{teacherId}")
    String findPasswordById(@Param("teacherId") Integer teacherId);

    // 新增教师
    @Insert("INSERT INTO teacher (teacher_id, teacher_image, teacher_password, teacher_name, teacher_phone, teacher_sex, teacher_email, teacher_education, teacher_idcard, teacher_worktime) " +
            "VALUES (#{teacher_id}, #{teacher_image}, #{teacher_password}, #{teacher_name}, #{teacher_phone}, #{teacher_sex}, #{teacher_email}, #{teacher_education}, #{teacher_idcard}, #{teacher_worktime})")
    int insertTeacher(Teacher teacher);

    // 修改删除方法为逻辑删除
    @Update("UPDATE teacher SET teacher_state = 1 WHERE teacher_id = #{teacher_id}")
    int deleteTeacher(@Param("teacher_id") Integer teacher_id);

    // 修改批量删除方法为逻辑删除
    @Update({
            "<script>",
            "UPDATE teacher SET teacher_state = 1 WHERE teacher_id IN",
            "<foreach collection='ids' item='id' open='(' separator=',' close=')'>",
            "#{id}",
            "</foreach>",
            "</script>"
    })
    int deleteBatch(@Param("ids") List<Integer> ids);

    // 查询单个教师
    @Select("SELECT * FROM teacher WHERE teacher_id = #{teacher_id}")
    Teacher getTeacherById(@Param("teacher_id") Integer teacher_id);


    //登录用
    // 根据工号查询教师信息
    @Select("SELECT * FROM teacher WHERE teacher_id = #{teacher_id}")
    Teacher loginTeacherById(@Param("teacher_id") Integer teacher_id);

    //登录用
    // 根据教师电话查询教师信息
    @Select("SELECT * FROM teacher WHERE teacher_phone = #{teacher_phone}")
    Teacher loginTeacherByPhone(@Param("teacher_phone") String teacher_phone);
}